﻿@model SmallJob.Model.MConversation
@{
    ViewBag.Title = "OrderDetails";
    Layout = "~/Views/Shared/_Layout2.cshtml";
    var displayorder = ViewData["displayorder"] as SmallJob.Model.Order;
    var userid = (int)ViewData["curuserid"];
    var ispayer = (userid == OrderHelper.GetPayerID(displayorder));
    var client = (Model.Person1ID == userid ? Model.User2 : Model.User1);
    var host = (Model.Person2ID == userid ? Model.User2 : Model.User1);
    var worker = (ispayer ? (Model.Person1ID == userid ? Model.User1 : Model.User2) : (Model.Person1ID == userid ? Model.User2 : Model.User1));
    var payer = (ispayer ? (Model.Person1ID == userid ? Model.User2 : Model.User1) : (Model.Person1ID == userid ? Model.User1 : Model.User2));
}
@using SmallShop.Services.Code;
<div class="service-detail">
    <div class="service-detail-container">
        <div class="row-fluid">
            <div class="span8 inbox-detail-box main-column">
                <div class="inner">
                    <h1>@(displayorder.Provide == null ? displayorder.Request.Title : displayorder.Provide.Title)</h1>
                </div>
                <div class="conversation-detail-inner-noscroll">
                    @foreach (var item in Model.Messages)
                    {
                        var sender = (item.SenderID == userid ? host : client);
                        <div class="conversation-message">
                            <div class="conversation-avatar pull-left">
                                <img src="@(string.IsNullOrWhiteSpace(sender.Avatar) ? Url.Content("~/Content/img/blank-avatar.jpg") : sender.Avatar)?w=32&h=32&q=90&format=jpg&mode=crop" />
                            </div>
                            <div class="conversation-body">
                                <p class="inbox-meta">
                                    <a class="inbox-sender" href="/@(string.IsNullOrWhiteSpace(sender.UserName) ? sender.ID.ToString() : sender.UserName)">@sender.Name</a>&nbsp;
                                    @if (item.Info != null)
                                    {
                                        if (item.Info.Type == (int)SmallJob.Model.EEmbedInfoType.Payment)
                                        { <span class="label label-important">@MessageHelper.GetStringSystemMessage(item.Info.Type)</span>  }
                                        else if (item.Info.Type == (int)SmallJob.Model.EEmbedInfoType.Rejected)
                                        { <span class="label label-warning">@MessageHelper.GetStringSystemMessage(item.Info.Type)</span>  }
                                        else
                                        { <span class="label label-success">@MessageHelper.GetStringSystemMessage(item.Info.Type)</span>  }
                                    }
                                    <span class="inbox-date">@string.Format("{0:t}", item.Date)</span>
                                </p>
                                <p class="inbox-message">
                                    @if (item.Info != null)
                                    {
                                        <strong>@item.Content</strong>
                                    }
                                    else
                                    {
                                        @item.Content
                                    }
                                </p>
                                @if (item.Info != null && item.Info.Type == (int)SmallJob.Model.EEmbedInfoType.Delivery && !string.IsNullOrWhiteSpace(item.Info.Download))
                                {
                                    <p>
                                        <a class="btn btn-success" type="button" href="@item.Info.Download" target="_blank">Tải về</a>
                                    </p>
                                }
                            </div>
                        </div>
                    }
                    @if (displayorder.Status == (int)OrderStatusV2.Done)
                    {
                        <div class="conversation-message">
                            <p class="text-center"><span class="label label-success">Đơn hàng đã hoàn thành</span></p>
                        </div>
                    }
                    else if (displayorder.Status == (int)OrderStatusV2.Failed)
                    {
                        <div class="conversation-message">
                            <p class="text-center"><span class="label label-error">Đơn hàng thất bại</span></p>
                        </div>
                    }
                </div>
                <div class="reply-box">
                    <input type="hidden" id="reply-cvs-id" value="@Model.ShortID">
                    <form class="form-horizontal reply-form">
                        <textarea rows="3" class="span12" style="margin: 0px; width: 590px; height: 70px;"></textarea>
                        <input type="button" class="btn btn-primary conversation-send" id="reply-btn" value="Gửi"></input>
                    </form>
                </div>
            </div>
            <div class="span4 sidebar">
                @if (!displayorder.DisableDetails && displayorder.Status == (int)OrderStatusV2.WaitProgress)
                {
                    <div class="service-detail-box sidebar-block sidebar-block texture" style="padding-bottom: 0 !important" id="service-detail-creator">
                        <div class="span4inner">
                            <p class="text-center">
                                <button onclick="makeacceptorder()" class="btn btn-large btn-success @(ispayer ? "disabled" : "")" type="button">@(ispayer ? "Chờ xác nhận đơn hàng" : "Xác nhận đơn hàng")</button>
                            </p>
                            <div class="alert alert-info">
                                @(   ispayer ?
                                "Người cung cấp dịch vụ cần thêm thông tin để tiến hành công việc. Nếu sau 3 ngày không được xác nhận, đơn hàng sẽ bị hủy và bạn sẽ nhận lại 100% số tiền đã thanh toán." :
                                "Hãy yêu cầu người đặt dịch vụ đầy đủ thông tin cần thiết để tiến hành sau đó bấm nút Xác nhận đơn hàng. Nếu sau 3 ngày bạn không có đủ thông tin để bấm nút xác nhận, đơn hàng sẽ tự động được hủy."
                                )
                            </div>
                        </div>
                    </div>
                }
                else if (!displayorder.DisableDetails && displayorder.Status == (int)OrderStatusV2.InProgress)
                {
                    var remain = (DateTime)displayorder.Deadline - DateTime.Now;
                    var isover = (remain.TotalMinutes < 0);
                    if (isover) { remain = remain.Negate(); }
                    <div class="service-detail-box sidebar-block sidebar-block texture" style="padding-bottom: 0 !important" id="service-detail-creator">
                        <div class="span4inner">
                            <p class="text-center">
                                <button class="btn btn-large btn-success @(ispayer ? "disabled" : "")" type="button" onclick="callpopupdelivery()">@(ispayer ? "Chờ kết quả dịch vụ" : "Bàn giao dịch vụ")</button>
                            </p>
                            <p class="text-center"><strong>@(isover ? "Đã quá" : "") Thời hạn:</strong></p>
                            <p class="text-center"><span class="label @(isover ? "label-important" : "label-info")">@remain.Days ngày @remain.Hours giờ @remain.Minutes phút</span></p>
                            <div class="alert alert-error">
                                @(ispayer ?
                                MvcHtmlString.Create("Nếu quá thời hạn cam kết 3 ngày, đơn hàng sẽ bị hủy và bạn sẽ tự động <strong>được hoàn lại tiền</strong>.") :
                                  MvcHtmlString.Create("Nếu quá thời hạn cam kết 3 ngày, đơn hàng sẽ bị hủy và bạn sẽ tự động <strong>nhận đánh giá 1 sao</strong>."))
                            </div>
                        </div>
                    </div>
                }
                else if (!displayorder.DisableDetails && displayorder.Status == (int)OrderStatusV2.WaitDone)
                {
                    <div class="service-detail-box sidebar-block sidebar-block texture" style="padding-bottom: 0 !important" id="service-detail-creator">
                        <div class="span4inner">
                            <p class="text-center">
                                <button class="btn btn-large btn-success disabled" type="button">@(ispayer ? "Kết quả đã được bàn giao" : "Đã bàn giao")</button>
                            </p>
                            <div class="alert alert-info">
                                "Nếu sau 3 ngày không có khiếu nại hay từ chối kết quả, đơn hàng được xem như hoàn thành."
                            </div>
                            @if (ispayer)
                            {
                                <p class="text-center"><a href="#" onclick="makedoneorder()">Chấp nhận kết quả</a> - <a href="#" onclick="makerejectorder()">Từ chối</a></p>
                            }
                        </div>
                    </div>
                }
                else if (!displayorder.DisableDetails && displayorder.Status == (int)OrderStatusV2.Done)
                {
                    <div class="service-detail-box sidebar-block sidebar-block texture" style="padding-bottom: 0 !important" id="service-detail-creator">
                        <div class="span4inner">
                            <p class="text-center">
                                <button class="btn btn-large btn-primary disabled" type="button">Đã hoàn thành</button>
                            </p>
                        </div>
                    </div>
                }
                else if (!displayorder.DisableDetails && displayorder.Status == (int)OrderStatusV2.Rejected)
                {
                    <div class="service-detail-box sidebar-block sidebar-block texture" style="padding-bottom: 0 !important" id="service-detail-creator">
                        <div class="span4inner">
                            <p class="text-center">
                                <button class="btn btn-large btn-warning disabled" type="button">@(ispayer ? "Chờ kết quả mới" : "Bị từ chối")</button>
                            </p>
                            <div class="alert alert-error">
                                @(ispayer ?
                                "Hãy trao đổi kỹ càng với người cung cấp dịch vụ để có kết quả tốt nhất." :
                                "Hãy trao đổi với người đặt hàng để biết lý do và bàn giao lại kết quả mới.")
                            </div>
                            @if (!ispayer)
                            {
                                <p class="text-center"><a href="#" onclick="callpopupdelivery()">Bàn giao lại</a>  </p>
                            }
                        </div>
                    </div>
                }
                <div class="service-detail-box sidebar-block" id="service-detail-creator1">
                    <div class="container-header">
                        Thông tin đơn hàng
                    </div>
                    <div class="user-avatar">
                        <img src="@(string.IsNullOrWhiteSpace(client.Avatar) ? Url.Content("~/Content/img/blank-avatar.jpg") : client.Avatar)" />
                    </div>
                    <h4 class="text-center">@client.Name</h4>
                    <p class="text-center">Đặt hàng: @displayorder.CreatedDate.ToString("dd/MM/yyyy hh:mm tt")</p>
                    <p class="text-center">
                        <button class="btn" type="button">Khiếu nại</button>
                    </p>
                </div>
            </div>
        </div>
    </div>
</div>
@if (!ispayer && (displayorder.Status == (int)OrderStatusV2.InProgress || displayorder.Status == (int)OrderStatusV2.Rejected))
{
    <div class="modal hide fade" tabindex="-1" role="dialog" id="div-mess-box" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
            <h3>Gửi đường dẫn tải về sản phẩm cho @payer</h3>
        </div>
        <div class="modal-body">
            @using (Html.BeginForm("MakeDeliveryOrder", "Personal", FormMethod.Post, new { id = "form-delivery-order" }))
            {
                <p>Hãy dán đường dẫn xuống ô bên dưới.</p>
                <input type="hidden"  name="orderid" value="@displayorder.ID" />
                <textarea rows="3" name="linkresult" id="area-content" style="width: 515px; height: 120px"></textarea>
                <input type="button" id="btn-submit-result" class="btn btn-primary" value="Bàn Giao" onclick="makedeliveryorder()" />
            }
        </div>
    </div>
}
<script type="text/javascript">
    var orderid = '@displayorder.ID';
    //$('#rateit5').rateit({ max: 5, step: 1 });
    //$('#rateit5').rateit('step', 1);
    //$("#rateit5").bind('rated', function (event, value) { $('#value5').text('You\'ve rated it: ' + value); });
    //$("#rateit5").bind('reset', function () { $('#value5').text('Rating reset'); });

    $('#reply-btn').click(function (e) {
        e.preventDefault();
        if ($('#reply-cvs-id').val() <= 0) return;
        $('#reply-btn').attr('disabled', 'disabled');
        var mes = $('.reply-box').find('textarea').val();
        if (mes.length > 0) {
            var preId = $('#reply-cvs-id').val();
            $.post("/Personal/SendMessage", { mes: mes, preId: preId }, function (data) {
                $('.conversation-detail-inner-noscroll').append($(data).filter('.wrapper-all-message').html());
                $('.reply-box').find('textarea').val("");
                $('#reply-btn').removeAttr('disabled');
            });
        }
    });
    function makeacceptorder() {
        var isok = confirm("Bạn có chắc muốn nhận đơn hàng này?");
        if (!isok) return;
        $.post("/Personal/MakeAcceptOrder", { orderid: orderid }, function (data) {
            if (data.result == true) {
                window.location.reload();
            }
            else {
                alert("error");
            }
        });
    }
    function callpopupdelivery() {
        $('#div-mess-box').modal('show');
    }
    function makedeliveryorder() {
        if ($('#form-delivery-order').find('[name="linkresult"]').val() == "") {
            alert("Bạn chưa nhập đường dẫn để tải sản phẩm về.");
            return;
        }
        var isok = confirm("Bạn có chắc muốn gửi kết quả và kết thúc đơn hàng?");
        if (!isok) return;
        $.post("/Personal/MakeDeliveryOrder", $('#form-delivery-order').serialize(), function (data) {
            if (data.result == true) {
                $('#div-mess-box').html(
                                  '<div class="form-actions" style="text-align:center">'
                                + '<div class="alert alert-success">'
                                + '<h4>Hoàn thành</h4>'
                                + 'Bạn đã gửi kết quả thành công.'
                                + '</div>'
                                + '<button type="button" class="btn btn-primary" onclick="window.location.reload()">Đóng</button>'
                                + '</div>');
            }
            else {
                alert("Có lỗi xảy ra. Hãy thử lại.");
            }
        });
    }
    function makerejectorder() {
        var isok = confirm("Bạn có chắc muốn từ chối kết quả?");
        if (!isok) return;
        $.post("/Personal/MakeRejectOrder", { orderid: orderid }, function (data) {
            if (data.result == true) {
                window.location.reload();
            }
            else {
                alert("error");
            }
        });
    }
    function makedoneorder() {
        var isok = confirm("Bạn có chắc muốn đánh dấu đơn hàng đã hoàn thành?");
        if (!isok) return;
        $.post("/Personal/MakeDoneOrder", { orderid: orderid }, function (data) {
            if (data.result == true) {
                window.location.reload();
            }
            else {
                alert("error");
            }
        });
    }
</script>
